home *** CD-ROM | disk | FTP | other *** search
- MODULE ConvertToCode;
- FROM Strings IMPORT Concat,String,Pos;
- FROM IO IMPORT FILE,OpenIn,OpenOut,WriteCard,Close,WriteString,NewLines,
- WriteChar;
- FROM Streams IMPORT Read16Bit,Read32Bit;
- FROM AESForms IMPORT FileSelectorInput;
- FROM SYSTEM IMPORT ADR;
- FROM GEMDOS IMPORT Delete,GetPath;
-
- PROCEDURE GetSize( f:FILE;
- VAR size:LONGCARD);
-
- VAR dummy:CARDINAL;
-
- BEGIN
- Read16Bit(f,dummy);
- Read32Bit(f,size);
- END GetSize;
-
-
- PROCEDURE GetInputName(VAR name:String);
-
-
-
- VAR fname:ARRAY[0..11] OF CHAR;
- pname:ARRAY[0..68] OF CHAR;
- button:INTEGER;
- end:CARDINAL;
- drive:CARDINAL;
- ok:BOOLEAN;
-
- BEGIN
-
- fname[0]:=0C;
- GetPath(pname,drive);
- pname[0]:=CHAR(drive+ORD("A"));
- pname[1]:=":";
- pname[2]:="\";
- pname[3]:="*";
- pname[4]:=".";
- pname[5]:="O";
- pname[6]:=0C;
- FileSelectorInput(ADR(pname),ADR(fname),button);
- ok:=Pos(pname,"*.",0,end);
- pname[end]:=0C;
- Concat(pname,fname,name);
-
- END GetInputName;
-
-
- PROCEDURE GetOutputName(VAR name:String);
-
-
-
- VAR fname:ARRAY[0..11] OF CHAR;
- pname:ARRAY[0..68] OF CHAR;
- button:INTEGER;
- end:CARDINAL;
- drive:CARDINAL;
- ok:BOOLEAN;
-
- BEGIN
-
- fname[0]:=0C;
- GetPath(pname,drive);
- pname[0]:=CHAR(drive+ORD("A"));
- pname[1]:=":";
- pname[2]:="\";
- pname[3]:="*";
- pname[4]:=".";
- pname[5]:="C";
- pname[6]:="O";
- pname[7]:="D";
- pname[8]:=0C;
- FileSelectorInput(ADR(pname),ADR(fname),button);
- ok:=Pos(pname,"*.",0,end);
- pname[end]:=0C;
- Concat(pname,fname,name);
-
- END GetOutputName;
-
-
-
-
-
- VAR i:LONGCARD;
- in:FILE;
- out:FILE;
- s:LONGCARD;
- instr:CARDINAL;
- c:CHAR;
- l:CARDINAL;
- ok:BOOLEAN;
- inspec:String;
- outspec:String;
-
-
- BEGIN
-
- GetInputName(inspec);
- GetOutputName(outspec);
- ok:=Delete(outspec);
- OpenIn(in,inspec);
- GetSize(in,s);
- Close(in);
- OpenOut(out,outspec);
- OpenIn(in,inspec);
- FOR i:=1 TO 14 DO
- Read16Bit(in,instr);
- END;
- WriteString(out,"MODULE CODEMODULE;");
- NewLines(out,1);
- WriteString(out,"FROM SYSTEM IMPORT CODE;");
- NewLines(out,1);
- WriteString(out,"BEGIN");
- NewLines(out,1);
- WriteString(out," CODE(");
- l:=0;
- FOR i:=1 TO s DIV 2 DO
- IF (l=8) THEN
- WriteString(out,");");
- NewLines(out,1);
- WriteString(out," CODE(");
- l:=0;
- END;
- IF (l#0) THEN
- WriteChar(out,",");
- END;
- INC(l);
- Read16Bit(in,instr);
- WriteCard(out,instr,0);
- END;
- WriteString(out,");");
- NewLines(out,1);
- WriteString(out,"END CODEMODULE.");
- NewLines(out,2);
-
- END ConvertToCode.
-